<?php
/* 
 MOBLOG.INC.PHP by martin $ 2009/12/27 15:59:38
*/

checkADMIN();

$ini_file = OD.'mob.ini.php';

$header = $body = '';

$helperState = isset($_COOKIE['PPBLOG_HELPER_STATE']) ? $_COOKIE['PPBLOG_HELPER_STATE'] : 1;

include($ini_file);  // get array::$MOB_CFG

if(!isset($MOB_CFG[12])) $MOB_CFG = array_pad($MOB_CFG, 13, '');

if(!empty($_POST)){
 $err_style = '<style type="text/css">
  div { width: 80%; margin: 20px auto 0 auto;  color: crimson;}
  p { text-align: center; }
 </style>';

 $MOB_CFG[0] = p_('mob_cat'); list($MOB_CFG[0],) = explode('|', $MOB_CFG[0]);
 $MOB_CFG[1] = str_replace('&#44;', '&#124;', p_('from'));
 $MOB_CFG[2] = p_('pop3'); $MOB_CFG[3] = p_('popid'); $MOB_CFG[4] = p_('poppwd');
 $MOB_CFG[5] = p_('ping'); $MOB_CFG[7] = p_('debug');
 $MOB_CFG[6] = p_('autoPost') ? p_('interval') : '60';
 $MOB_CFG[8] = time();     // fin set $MOB_CFG[8]
 $MOB_CFG[9] = p_('allowC'); // comment
 $MOB_CFG[10] = p_('allowP'); // ping
 $MOB_CFG[11] = p_('autoPost'); // autoPost
 $MOB_CFG[12] = p_('Csort'); // Comment sort
 rewrite_ini($ini_file, $MOB_CFG);
 $ini_inc_php = OD.'ini.inc.php';
 $ini_inc = get_file_content($ini_inc_php);
 $ini_inc = preg_replace(
  "{define\('ENABLE_AUTO_MOBCHK','(?:0|1)'\);([^\n]+?)\n}",
  "define('ENABLE_AUTO_MOBCHK','$MOB_CFG[11]');\\1\n",
  $ini_inc
  );
 rewrite($ini_inc_php, $ini_inc);

 include($ini_file); // get array::$MOB_CFG

 $port = strstr($MOB_CFG[2], '.gmail') ? 995 : 110;
 $server = strstr($MOB_CFG[2], '.gmail') ? 'ssl://'.$MOB_CFG[2] : $MOB_CFG[2];
 if(!$fp = @fsockopen($server, $port, $errno, $errstr, $timeout=10)){
  $DIVISION['style'] .= $err_style;
  refresh_page("admin.php?mode=moblog", 4000);
  return $DIVISION['body'] .= '<div><p>サーバー接続エラー('.$errno.') - '.my_convert_encoding($errstr, ENCODE, 'auto').'</p>
  <p>メールサーバーの設定に問題があるようです。</p></div>';
 }
 socket_set_timeout($fp, $timeout);
 $ret1 = pop3_cmd($fp, "USER $MOB_CFG[3]");
 $ret2 = pop3_cmd($fp, "PASS $MOB_CFG[4]");

 if(!$ret1[0]){
  $DIVISION['style'] .= $err_style;
  refresh_page("admin.php?mode=moblog", 4000);
  return $DIVISION['body'] .= '<div><p>サーバー認証エラー: '.$ret1[1].'</p><p>メールサーバーへの接続IDに問題があるようです。</p></div>';
 }
 if(!$ret2[0]){
  $DIVISION['style'] .= $err_style;
  refresh_page("admin.php?mode=moblog", 4000);
  return $DIVISION['body'] .= '<div><p>サーバー認証エラー: '.$ret2[1].'</p><p>メールサーバーへの接続PWDに問題があるようです。</p></div>';
 }
 $ret3 = pop3_cmd($fp, "STAT");
 if(!$ret3[0]){
  $DIVISION['style'] .= $err_style;
  refresh_page("admin.php?mode=moblog", 4000);
  return $DIVISION['body'] .= '<div><p>サーバー認証エラー: '.$ret3[1].'</p><p>メールサーバーへの接続IDやPWDに問題があるようです。</p></div>';
 }
 pop3_cmd($fp, "QUIT"); fclose($fp);
 showMessage('新しく設定しました');
}

$body .= '<h4 class="corner-play tinyheader" style="width: 390px; color:#002200;">携帯電話からの投稿（モブログ）の設定をします</h4>';
 $body .= '<ul class="p2em" style="width: 90%; display:'.($helperState?'block':'none').';">'.NL;
 $body .= '<li>「送信元ケータイのメールアドレス」では，半角のカンマ(,)あるいはパイプ(|)で区切って複数のアドレスを指定することが出来ます。</li>
  <li>送信元ケータイのメールアドレスで投稿者を区別するので、共有ユーザーがいるときは設定したアドレスがダブらないようにして下さい。</li>
  <li>ここでの設定は、ブログの管理人向けの設定になります。各ユーザー毎の設定は<a href="admin.php?mode=add_usr">「ユーザー管理」</a>から。</li>
  <li>モブログの自動投稿の設定は、<strong>管理者のみ</strong>で共有ユーザー毎の指定は出来ません。しかしながら、「ユーザー管理」のユーザー毎の設定で、管理者と同じ投稿ポスト(メールサーバーへの接続IDやPWDが同じ)にすれば、共有ユーザーからのメールも自動投稿に反映させることが出来ます。</li>
 </ul><p class="helper" onclick="toggleHelper(this);" title="説明を閉じる">　</p>'.NL;
$body .= '
<style type="text/css">
 .left {line-height: 1.7;}
 .left input, .left select { margin-left: 10px; }
 .right { padding-left: 1.7em; }
</style>
<form action="admin.php" method="post" style="width: 590px; margin: 0 auto 2em auto; background:transparent url(./Images/mobile.png) 93% 60% no-repeat;">
 <fieldset><legend>モブログの設定</legend>
  <div class="hidden"><input type="hidden" name="mode" value="moblog" /></div>
  <table style="margin: auto;">
   <tr><td class="right">既定の投稿先カテゴリー::</td><td class="left">'.cat_select($MOB_CFG[0],'','', 'mob_cat').'</td></tr>
   <tr><td class="right">送信元ケータイのメールアドレス::</td><td class="left"><input type="text" size="20" name="from" value="'.$MOB_CFG[1].'" /></td></tr>
   <tr><td class="right">モブログ送信先のメールサーバー::</td><td class="left"><input type="text" size="20" name="pop3" value="'.$MOB_CFG[2].'" /></td></tr>
   <tr><td class="right">メールサーバーへの接続ID::</td><td class="left"><input type="text" size="20" name="popid" value="'.$MOB_CFG[3].'" /></td></tr>
   <tr><td class="right">メールサーバーへの接続PWD::</td><td class="left"><input type="text" size="20" name="poppwd" value="'.$MOB_CFG[4].'" /></td></tr>
   <tr><td class="right">更新Pingを<a href="admin.php?mode=ping">PINGサーバー</a>に送信する？::</td><td class="left">
    <input type="radio" name="ping"'.($MOB_CFG[5]?'checked="checked" ':' ').'id="mob1" value="1" /><label for="mob1"> する</label>
    <input type="radio" name="ping"'.($MOB_CFG[5]?' ':'checked="checked" ').'id="mob2" value="0" /><label for="mob2"> しない</label></td></tr>
   <tr><td class="right">コメント受付を有効にするか？::</td><td class="left">
    <input type="radio" name="allowC"'.($MOB_CFG[9]?'checked="checked" ':' ').'id="allowC1" value="1" /><label for="allowC1"> する</label>
    <input type="radio" name="allowC"'.($MOB_CFG[9]?' ':'checked="checked" ').'id="allowC2" value="0" /><label for="allowC2"> しない</label></td></tr>
   <tr><td class="right">トラックバック受付を有効にするか？::</td><td class="left">
    <input type="radio" name="allowP"'.($MOB_CFG[10]?'checked="checked" ':' ').'id="allowP1" value="1" /><label for="allowP1"> する</label>
    <input type="radio" name="allowP"'.($MOB_CFG[10]?' ':'checked="checked" ').'id="allowP2" value="0" /><label for="allowP2"> しない</label></td></tr>
   <tr><td class="right">モブログメールの自動投稿をするか？::</td><td class="left">
    <input type="radio" name="autoPost"'.($MOB_CFG[11]?'checked="checked" ':' ').'id="autoP1" value="1" onclick="if(this.checked)o(\'#interval\').$.disabled=0;" /><label for="autoP1"> する</label>
    <input type="radio" name="autoPost"'.($MOB_CFG[11]?' ':'checked="checked" ').'id="autoP2" value="0" onclick="if(this.checked)o(\'#interval\').$.disabled=1;" /><label for="autoP2"> しない</label></td></tr>

   <tr><td class="right">モブログメールのチェック間隔(分)::</td><td class="left"><input type="text" size="5" name="interval" id="interval" value="'.$MOB_CFG[6].'"'.($MOB_CFG[11]?"":" disabled").' />(自動投稿のとき有効)</td></tr>
   <tr><td class="right">ケータイモードでのコメントの表示順序::</td><td class="left">
    <input type="radio" name="Csort"'.($MOB_CFG[12]?'checked="checked" ':' ').'id="Csort1" value="1" /><label for="Csort1"> 古い順</label>
    <input type="radio" name="Csort"'.($MOB_CFG[12]?' ':'checked="checked" ').'id="Csort2" value="0" /><label for="Csort2"> 新しい順</label></td></tr>
   <tr><td class="right" title="モブログ不調時の診断に">デバッグモードを有効にするか？::</td><td class="left">
    <input type="radio" name="debug"'.($MOB_CFG[7]?'checked="checked" ':' ').'id="deb1" value="1" /><label for="deb1"> する</label>
    <input type="radio" name="debug"'.($MOB_CFG[7]?' ':'checked="checked" ').'id="deb2" value="0" /><label for="deb2"> しない</label></td></tr>
  </table>
  <p class="center" style="margin: 1em auto 1em auto;">
  <input type="image" src="Images/reload1.png" title="更 新"
    onmouseover="this.src=\'Images/reload2.png\';"
    onmouseout="this.src=\'Images/reload1.png\'" alt="Refresh" />
  </p>
 </fieldset>
</form>
';
return $DIVISION['body'] .= $header.$body;

function pop3_cmd($fp, $cmd){
 fputs($fp, $cmd."\r\n");
 $line = fgets($fp, 512);
 if(stristr($line, 'failed') || stristr($line, 'ERR')) {
  return array(0, $line);
 } else return array(1, $line);
}

?>
